package com.boot.service;


import com.baomidou.mybatisplus.service.IService;
import com.boot.entity.*;
import com.boot.paramer.GetAdsParamer;
import com.boot.util.AdCommentsResult;
import com.boot.util.AdPushResult;
import com.boot.util.AdResult;
import org.springframework.web.multipart.commons.CommonsMultipartFile;

import javax.servlet.http.HttpServletRequest;

public interface AdService  extends IService<Ad> {

	/**张贴广告
	 * @param ad
	 * @return
	 */
	public AdPushResult save(Ad ad);
	
	
	/**
	 * 张贴广告带有图片资源的方式
	 * @param ad
	 * @param request
	 * @param files
	 * @return
	 */
	public AdPushResult save(Ad ad,HttpServletRequest request,CommonsMultipartFile[] files);
	
	/**获取广告列表
	 * @param pageIndex
	 * @param pageSize
	 * @param type
	 * @return
	 */
	public AdResult getAds(GetAdsParamer paramer);
	
	/**获取广告列表
	 * @param pageIndex
	 * @param pageSize
	 * @param type
	 * @return
	 */
	public AdResult getAdsIos(GetAdsParamer paramer);
	
	/**获取某条广告详情
	 * @param ad_id
	 * @return
	 */
	public AdResult getAdById(String ad_id);
	
	/**记录广告浏览次数
	 * @param ad_id
	 * @param clicks
	 * @return
	 */
	public AdResult recordScan(int ad_id,int clicks);

	/**获取广告详情
	 * @param id
	 * @return
	 */
	public AdResult getAdAndUserInfo(String ad_id);
	
	/**对广告进行评论
	 * @param adid
	 * @param userid
	 * @param content
	 * @return 返回一个封装了发布状态和提示信息及相应数据的结果对象
	 */
	public AdResult publishAdComment(Comment comment);
		
	/**获取当前广告的所有评论
	 * @param adid
	 * @return 返回结果对象携带所有评论及查询状态、说明state为0表示失败，为1表示成功
	 */
	public AdResult getCommentsByAdId(String adid);
	
	/**对某条评论进行回复
	 * @param commentid
	 * @return
	 */
	public AdResult publishAdCommentReply(CommentReply commentReply);
	
	
	/**获取某条评论的回复
	 * @param id
	 * @return
	 */
	public AdResult getCommentReplys(String user_id,String comment_id,Integer pageIndex,Integer pagezSize);
	

	/**通过关键字来搜索广告
	 * @param pageIndex
	 * @param pageSize
	 * @param type
	 * @param secondtype
	 * @param area
	 * @param keyword
	 * @return
	 */
	public AdResult getAdsByKeyword(GetAdsParamer paramer);
	
	/**删除某条评论
	 * @param commentid
	 * @return
	 */
	public AdResult deleteCommentById(String ad_id,String comment_id);

	/**
	 * 删除评论回复
	 * @param comment_id
	 * @return
	 */
	public AdResult deleteAdCommentReply(String comment_id,String comment_reply_id);
	/**
	 * 余额支付
	 * @param ad_id
	 * @return
	 */
	public AdResult doPayByBalance(String ad_id,String pay_password,String token);


	/**
	 * 获取评论
	 * @param ad_id
	 * @param pageIndex
	 * @param pageSize
	 * @return
	 */
	public AdCommentsResult getComments(String ad_id,String user_id,String store_id,Integer pageIndex, Integer pageSize);


	/**
	 *  点赞
	 * @param comment_id
	 * @param user_id
	 * @return
	 */
	public AdResult addGood(String comment_id, String user_id);


	/**
	 * 收藏
	 * @param collection
	 * @return
	 */
	public AdResult collectAdService(CollectionAd collection);


	/**
	 * 回复的回复点点赞 
	 * @param comment_reply_id
	 * @param user_id
	 * @return
	 */
	public AdResult addReplyGood(String comment_reply_id, String user_id);


	/**
	 * 添加举报
	 * @param report
	 * @return
	 */
	public AdResult addReportService(Report report);


	/**
	 * 上传视频
	 * @param ad
	 * @param request
	 * @param files
	 * @return
	 */
	public AdPushResult saveWithVideo(Ad ad, HttpServletRequest request, CommonsMultipartFile[] files);




	
}
